ABC279 D - All Assign Point Add
https://atcoder.jp/contests/abc278/tasks/abc278_d
提出
TLE
code: python
n = int(input())
a = list(map(int, input().split()))
q = int(input())
queries = input() for _ in range(q)
tmp = a
for query in queries:
sq = query.split(" ")
if int(sq0) == 2:
tmp[int(sq1)-1] += int(sq2)
elif int(query0) == 1:
tmp = [int(sq1)] * n
else:
print(tmp[int(sq1)-1])
解答
code: python
from collections import defaultdict
n = int(input())
a = list(map(int, input().split()))
q = int(input())
queries = input() for _ in range(q)
g = 0
base = 0
diff = defaultdict(int)
for query in queries:
sq = query.split(" ")
if int(sq0) == 1:
g += 1
base = int(sq1)
elif int(sq0) == 2:
diff[(g, int(sq1))] += int(sq2)
else:
if g > 0:
print(base + diff[(g, int(sq1))])
else:
print(a[int(sq1) - 1] + diff[(g, int(sq1))])
メモ
ABC278 D問題(All Assign Point Add)を解く
提出
code: python
n = int(input())
a = list(map(int, input().split()))
q = int(input())
queries = list(map(int, input().split())) for _ in range(q)
diff = 0
for query in queries:
q1 = query0
if q1 == 2:
_, i, x = query
ai-1 += x
elif q1 == 3:
_, x = query
print(ax-1)
else:
_, x = query
# O(q*n)
# a = x * n
# diff =